﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using EnterpriseLibraryWrapper;
using itau.im.entidade;

namespace itau.im.negocio
{
    [ServiceContract]
    public interface IRelatorioRegraBS
    {
        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        FiltroRelatorioRegras ObterFiltrosRelatorioRegras();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RelatorioParametrosERegrasSaida> ConsultarRelatorioParametrosERegra(RelatorioParametrosERegrasEntrada filtroRelatorio, int numeroPagina, int qtdeRegistros);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RelatorioCombinacoesDominioSaida> ConsultarRelatorioCombinacoesDominios(RelatorioCombinacoesDominioEntrada filtroRelatorio, int numeroPagina, int qtdeRegistros);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RelatorioListagemSubProdutosSaida> ConsultarRelatorioListagemSubProduto(RelatorioListagemSubProdutosEntrada filtroRelatorio, int numeroPagina, int qtdeRegistros);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RelatorioHistAlteracaoRegrasSaida> ConsultarRelatorioHistoricoAlteracao(RelatorioHistAlteracaoRegrasEntrada filtroRelatorio, int numeroPagina, int qtdeRegistros);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RelatorioSegregacaoRegrasSaida> ConsultarRelatorioSegregacaoRegras(RelatorioSegregacaoRegrasEntrada filtroRelatorio, int numeroPagina, int qtdeRegistros);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<RelatorioRegraAprecamentoSaida> ConsultarRelatorioRegraAprecamento(RelatorioRegraAprecamentoEntrada filtroRelatorio, int numeroPagina, int qtdeRegistros);
    }
}
